[FEATURE] Adds sync observers back to tracked properties #18059
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR flushes synchronous observers in the tracked feature flag path
during each
notifyPropertyChange
, which gives these observers similartiming semantics to what they currently have without the feature flag
enabled. These changes are meant to only affect observers, and while the
metadata required is stored with listeners, this PR doesn't add "async
listeners" as a concept to the system.
The most notable change is the addition of the
suspended
property toactive observers. This property is used by setters which are being set
(computed property setters, and in the future
dependentKeyCompat
setters), and when observers are triggered to prevent re-entry.